"""
python3 基础语法
"""

''' 约束
编码：UTF-8
标识符：
  第一个字符必须是字母表中字母或下划线 _
  标识符的其他的部分由字母、数字和下划线组成
  标识符对大小写敏感
'''

''' 警告
缩进用4个空格
, 后面加空格
结尾换新行
'''

# 单行注释
'''
  多行注释
'''
"""
  多行注释
"""

'''
行与缩进，缩进表示代码块，无大括号{ }
'''
if True:
    print("Answer")
    print("True")
else:
    print("Answer")
#     print("False")    # 缩进不一致，会导致运行错误

'''
多行语句，使用反斜杠\
在 [], {}, 或 () 中的多行语句，不需要使用反斜杠
'''
total = 1 + \
        2 + \
        3
print(total)
total = ['item_one', 'item_two', 'item_three',
         'item_four', 'item_five']
print(total)

'''
导入模块
从某个模块中导入某个函数,格式为： from somemodule import somefunction
从某个模块中导入多个函数,格式为： from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入，格式为： from somemodule import *
'''
import sys
print(sys.path)
from sys import argv, path
print(argv, path)

'''
多个变量赋值
'''
m = n = 0
print(m, n)
a, b = 1, 2
print(a, b)

'''
运算符
算数运算符：+ - * / % ** //
比较运算符：== != > < >= <=
位运算符：& | ^ ~ << >>
逻辑运算符：and, or, not
成员运算符：in, not in
身份运算符：is, is not
'''
# 位运算
a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = a & b  # 12 = 0000 1100
print("1 - c 的值为：", c)
c = a | b  # 61 = 0011 1101
print("2 - c 的值为：", c)
c = a ^ b  # 49 = 0011 0001
print("3 - c 的值为：", c)
c = ~a  # -61 = 1100 0011
print("4 - c 的值为：", c)
c = a << 2  # 240 = 1111 0000
print("5 - c 的值为：", c)
c = a >> 2  # 15 = 0000 1111
print("6 - c 的值为：", c)

'''
运算符优先级
略..
'''

'''
id() 函数用于获取对象内存地址
del语句删除单个或多个对象的引用
'''
print(id(a), id(b))
del a, b
# print(id(a), id(b))  a, b 已经删除，此处错误

'''
条件控制
if – elif – else
每个条件后面要使用冒号（:）
没有switch – case语句
break 语句可以跳出 for 和 while 的循环体
如果你从 for 或 while 循环中终止，任何对应的循环 else 块将不执行
'''

'''
循环语句
没有do..while循环
'''
# while 语句
n = 100
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
print("1 到 %d 之和为: %d" % (n, sum))

# while..else
count = 0
while count < 5:
    print(count, " 小于 5")
    count = count + 1
else:
    print(count, " 大于或等于 5")

# 简单语句组
# while (1): print('欢迎访问菜鸟教程!')

# for 语句
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鸟教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

# range() 函数
for i in range(5):
    print(i)
for i in range(5, 9):
    print(i)
for i in range(0, 10, 3):
    print(i)
for i in range(-10, -100, -30):
    print(i)

'''
空语句
pass是空语句，是为了保持程序结构的完整性
'''
if True:
    pass

'''
输出输入
'''
# 不换行输出
print(111, end=" aaa ")
print(222, end="")
print()
# input('\n按下 Enter 键后退出')
